﻿// JScript 文件
//Xslt语法语句相关
var XsltEl=new Array();
XsltEl[0]=new Array('连接地址','A');
XsltEl[1]=new Array('输出图片','Image');
XsltEl[2]=new Array('输出文本框','Text');
XsltEl[3]=new Array('Value-Of','ValueOf');
XsltEl[4]=new Array('for-each','ForEach');
XsltEl[5]=new Array('HTML编辑输出','Escaping');
XsltEl[6]=new Array('变量引入','Param');
XsltEl[7]=new Array('变量定义','Variable');
XsltEl[8]=new Array('变量传递','WithParam');
XsltEl[9]=new Array('循环模板定义','Templates');
XsltEl[10]=new Array('循环引用标签','ApplyTemplate');
XsltEl[9]=new Array('If判断','If');
XsltEl[10]=new Array('When判断','When');

//系统定义模板函数
var KTFunctionEl=new Array();
KTFunctionEl[0]=new Array('时间格式化','FormatDate');
KTFunctionEl[1]=new Array('截取字符串','SubString');
KTFunctionEl[2]=new Array('获取数据字典中的值','GetDDValue');
KTFunctionEl[3]=new Array('获取数据字典中的键','GetDDKey');
KTFunctionEl[4]=new Array('获取数据字典中的描述','GetDDCommentByValue');
KTFunctionEl[4]=new Array('获取数据字典中的描述','GetDDCommentByKey');
KTFunctionEl[5]=new Array('获取资源类型名称','GetSourceTypeName');
KTFunctionEl[6]=new Array('获取资源类型文件夹名称','GetSourceTypeFolderCode'); 

var CreateXsltControl=function(el,vel,f)
{ 
    var str="";
    str+='标准代码:<select id="select_xslt_configs" onchange="ChanageXsltConfigs(this,\''+vel+'\',\''+f+'\')"><option value=""></option>'
    for(var i=0;i<XsltEl.length;i++)
    {
        str+='<option value="'+XsltEl[i][1]+'">'+XsltEl[i][0]+'</option>';        
    }
    str+="</select>";
    str+='系统函数:<select id="select_ktfunction_configs" onchange="ChanageFunctionConfigs(this,\''+vel+'\',\''+f+'\')"><option value=""></option>'
    for(var i=0;i<KTFunctionEl.length;i++)
    {
        str+='<option value="'+KTFunctionEl[i][1]+'">'+KTFunctionEl[i][0]+'</option>';        
    }     
    $(el).innerHTML=str;    
}

var ChanageFunctionConfigs=function(el,vel,f)
{
    var str="";
    if(el.value!="")
    {       
        switch(el.value)
        {
            case "FormatDate":str='kt:KTFormatDate(字段名称,\'yyyy-MM-dd\')';break;
            case "SubString":str='kt:KTSubString(字段名称,\'长度\')';break;
            case "GetDDValue":str='kt:KTGetDDValue(\'数据字典名称\',\'数据字典键\')';break;
            case "GetDDKey":str='kt:KTGetDDKey(\'数据字典名称\',\'数据字典值\')';break;
            case "GetDDCommentByValue":str='kt:KTGetDDCommentByValue(\'数据字典名称\',\'数据字典值\')';break;
            case "GetDDCommentByKey":str='kt:KTGetDDCommentByKey(\'数据字典名称\',\'数据字典键\')';break;
            case "GetSourceTypeName":str='kt:KTGetSourceTypeName(\'资源类型\')';break;
            case "GetSourceTypeFolderCode":str='kt:KTGetSourceTypeFolderCode(\'资源类型\')';break;
//            case "WithParam":str='<xsl:with-param name=""/></xsl:with-param>';break;
//            case "Templates":str='<xsl:template match=""></xsl:template>';break;
//            case "ApplyTemplate":str='<xsl:apply-templates select=""/>';break;
//            case "If":str='<xsl:if test=""></xsl:if>';break;
//            case "When":str='<xsl:choose><xsl:when test=""></xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose>';break;
            default:str=''; break;
        }
    }
    
    if(str!="")
    {
        if(f!=null && f=="true")
        {
            var oEditor = FCKeditorAPI.GetInstance( vel+'_DataFCKeditor' );      
            if(!oEditor.EditorDocument)
            {
                MsgDlg(Server_Error_Message); 
                return false;   
            }
            var e=oEditor.EditorDocument.createElement('DIV');
            e.innerHTML=str;
            A=oEditor.InsertElement(e); 
        }
        else
        {
         
            if(ContentCurrentPostion!=null)
            {        
                $(vel).focus(); 
                if(document.selection)
                {           
                    ContentCurrentPostion.text=str;  //记录当前位置,如果是IE记录的应该是一个rang范围,firefox则记录的是一个位置值
                }
                else
                {
                    var startPos=ContentCurrentPostion.startPos;
                    var endPos=ContentCurrentPostion.endPos; 		    
                    $(vel).value=$(LoopConfig.ContorlName).value.substring(0,startPos)+str+$(vel).value.substring(endPos,$(vel).value.length);

                }
            }
            else
            {
                $(vel).value+=str;
            } 
        }      
    }

};


//控件,目标Div,类型
var ChanageXsltConfigs=function(el,vel,f)
{
    var str="";
    if(el.value!="")
    {       
        switch(el.value)
        {
            case "A":str='\r\n<a>\r\n<xsl:attribute name="href">\r\n</xsl:attribute>\r\n <xsl:attribute name="title">\r\n</xsl:attribute>\r\n</a>\r\n';break;
            case "Image":str='\r\n<xsl:element name="img">\r\n<xsl:attribute name="src">\r\n</xsl:attribute>\r\n<xsl:attribute name="border">0</xsl:attribute>\r\n</xsl:element>\r\n';break;
            case "Text":str='<xsl:text disable-output-escaping="yes"></xsl:text>';break;
            case "ValueOf":str='<xsl:value-of select="字段名称"/>';break;
            case "ForEach":str='<xsl:for-each select="">\r\n</xsl:for-each>';break;
            case "Escaping":str='disable-output-escaping="yes"';break;
            case "Param":str='<xsl:param name=""/>';break;
            case "WithParam":str='<xsl:with-param name=""/></xsl:with-param>';break;
            case "Templates":str='<xsl:template match=""></xsl:template>';break;
            case "ApplyTemplate":str='<xsl:apply-templates select=""/>';break;
            case "If":str='<xsl:if test=""></xsl:if>';break;
            case "When":str='<xsl:choose><xsl:when test=""></xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose>';break;
            default:str=''; break;
        }
    }
    
    if(str!="")
    {
        if(f!=null && f=="true")
        {
            var oEditor = FCKeditorAPI.GetInstance( vel+'_DataFCKeditor' );      
            if(!oEditor.EditorDocument)
            {
                MsgDlg(Server_Error_Message); 
                return false;   
            }
            var e=oEditor.EditorDocument.createElement('DIV');
            e.innerHTML=str;
            A=oEditor.InsertElement(e); 
        }
        else
        {
         
            if(ContentCurrentPostion!=null)
            {        
                $(vel).focus(); 
                if(document.selection)
                {           
                    ContentCurrentPostion.text=str;  //记录当前位置,如果是IE记录的应该是一个rang范围,firefox则记录的是一个位置值
                }
                else
                {
                    var startPos=ContentCurrentPostion.startPos;
                    var endPos=ContentCurrentPostion.endPos; 		    
                    $(vel).value=$(LoopConfig.ContorlName).value.substring(0,startPos)+str+$(vel).value.substring(endPos,$(vel).value.length);

                }
            }
            else
            {
                $(vel).value+=str;
            } 
        }      
    }
};